from redis import StrictRedis
import logging


# 设置配置信息类, 储存要配置的信息
# 这个是处于开发阶段
class Config(object):
    """父类, 开发阶段"""
    DEBUG = True
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/information_16"
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379
    SECRET_KEY = '154e5f2e7g5es1df8e4e2f723fg4a65dsf7a6df435asd4fa65s'
    # 这个是将session保存到redis数据库里面去,
    SESSION_TYPE = 'redis'
    # 让cookie中的session_id被加密签名处理
    SESSION_USE_SIGNER = True
    # 把redis的实例对象 传给他
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT)
    # 设置session的有效时长
    PERMANENT_SESSION_LIFETIME = 86400



class DevelopConfig(Config):
    """测试阶段, """
    DEBUG = True
    # 把日志要配置的信息写在这边
    LOG_LEVEL = logging.DEBUG

class ProductionConfig(Config):
    """上线阶段, """
    DEBUG = False
    LOG_LEVEL = logging.WARNING

# 提供接口 当外部函数调用这个字典里面的键时, 把键所对应的键保存的函数传给他
config_dict = {'develop': DevelopConfig,
               'production': ProductionConfig
               }
